#ifndef PAGE_H
#define PAGE_H

#include <stdint.h>

#define PAGE_DIR_ENTRIES 1024
#define PAGE_TAB_ENTRIES 1024

typedef struct {
    uint32_t entries[PAGE_DIR_ENTRIES];
} page_dir_t;

typedef struct {
    uint32_t entries[PAGE_TAB_ENTRIES];
} page_tab_t;

void set_page_dir_entry(page_dir_t *dir, int n, page_tab_t *tab);
void set_page_tab_entry(page_tab_t *tab, int n, uint32_t addr);
void init_page_dir(page_dir_t *dir);
void init_page_tab(page_tab_t *tab, uint32_t addr);
void enable_page(page_dir_t *dir);

#endif